# Image Flashing ***Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.*** --- Before flashing the **Quectel Pi** image, make sure the **Qualcomm_USB_Driver_v1.0.10065.1** driver has been installed. If it is not installed, [click here to download and install the driver](). # QFIL Image Flashing (Recommended) If **QFIL** flashing software has been installed on your PC, you can use it to flash the image. ## Configure QFIL Click **Tools** → **Configuration** in the menu bar, and configure the following settings in the pop-up configuration window: 1. Set **Device Type** to `ufs`. 2. Set **Validation Mode** to `0 - No Validation`. 3. Click **OK** to save the configuration. ```{image} images/image_EiOubKabqog9NbxzznqcXTwenPc.webp :width: 800px :height: 599px ``` ## Flashing Steps 1. **Select the port** - Press and hold the **EMG_DOWNLOAD** button on **Quectel Pi**, and power on **Quectel Pi** at the same time. - Click **SelectPort**, select the **9008** port, and click **OK**. 1. **Select the build type** - Select `Flat Build` in **Select Build Type**. 1. **Select the Programmer file** - Click **Browse**. - Select the `prog_firehose_Qcm6490_ddr.elf` file. 1. **Load XML configuration files** - Click **Load XML**. - Select all `rawprogram*.xml` and `patch*.xml` files. 1. **Start flashing** - Click **Download** to start flashing. - When **Download Succeed** is displayed in the **Status** area, flashing has succeeded. - The system will reboot automatically. ```{image} images/image_JkhrbjodkogSqTxF55FcqUkenRc.webp :width: 800px :height: 599px ``` # Flash Software Using QDL ### Make Sure ModemManager Is Not Running - Prerequisite: If the current host uses a **Linux** distribution with **systemd**, some **Linux** distributions include the **ModemManager** tool, which is used to configure mobile broadband. When the device is connected in **USB** mode, it is recognized as a **Qualcomm** modem, and **ModemManager** may try to configure the device. This interferes with **QDL** flashing, so **ModemManager** must be disabled before connecting the device. Use the following command to disable **ModemManager**: ```bash sudo systemctl stop ModemManager ``` ## Flash the Image Enable **EMG_DOWNLOAD** and power on the module. The module enters **QDL** emergency download mode. - **Linux x64** **Download QDL tool:**[Linux x64 download]() 1. Extract the QDL_Linux_x64 archive, and open a terminal window in the directory containing the firmware, **rawprogram.xml**, **patch.xml**, and the **QDL** binary. 2. Run the **QDL** executable in the **QDL_Linux_x64** directory with the following command to flash the software. ```bash ./qdl --storage ufs prog_firehose_Qcm6490_ddr.elf rawprogram*.xml patch*.xml ``` If **"partition 1 is now bootable"** is displayed in the terminal window, flashing has succeeded, as shown in the following message: ```{image} images/image_Z5XzbQueBoYYcZxE4Ehcs5APnQh.webp :width: 1064px :height: 558px ``` After flashing succeeds, run **lsusb** in the terminal window to view device information, as shown below: ```{image} images/image_SIU2bVwQgooOHwx3kcRcbrUFn3g.webp :width: 808px :height: 151px ``` - **Windows x64** **Download QDL tool:**[Windows x64 download]() **Install Microsoft WinUSB driver** **Step 1: Uninstall the existing driver** - Open Device Manager. - If the device appears under Ports (COM & LPT), uninstall the Qualcomm USB driver. - **Important:** Select **Delete the driver software for this device**. **Step 2: Install the WinUSB driver** - Find the device (qcm6490-idp) in Device Manager. - Right-click it and select **Update driver**. - Select **Browse my computer for drivers**. - Select **Let me pick from a list of available drivers on my computer**. - Select **Microsoft** as the manufacturer and **WinUSB Device** as the model. - When the warning prompt appears, click **Yes** to continue installation. ```{image} images/image_TWoeb0wF9o7hVRxBA1AcfER2ntc.webp :width: 854px :height: 751px ``` 1. Extract the QDL_Win_x64 archive, and place the firmware program, **rawprogram.xml**, **patch.xml**, and other files together with the QDL executable. 2. Open a Cmd window and run the QDL executable in the QDL_Win_x64 directory with the following command. ``` QDL_Win_x64>QDL.exe prog_firehose_Qcm6490_ddr.elf rawprogram0.xml rawprogram1.xml rawprogram2.xml rawprogram3.xml rawprogram4.xml rawprogram5.xml patch0.xml patch1.xml patch2.xml patch3.xml patch4.xml patch5.xml ``` ```{image} images/image_QBHkbNXKEoIXcOxrQWtcljNqnMb.webp :width: 964px :height: 161px ``` The following figure shows successful flashing: ```{image} images/image_Va9PbqaOhoUMHnxT56Vc1UkanPi.webp :width: 964px :height: 360px ``` ### Notes If flashing fails, perform the following steps and retry the flashing process: 1. Power off the device. 2. Disconnect **Quectel Pi**. 3. Restart **Quectel Pi**.